<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>24_相等运算符.html</title>
    <script type="text/javascript">

        /*
            相等运算符用来比较两个值是否相等
                如果相等会返回true,否则返回false

            使用 == 来比较两个值时，如果值的类型不同
                则会自动进行类型转换，将其转换为相同的类型
                然后再比较
            
            不相等
                不相等用来判断两个值是否不相等，如果不相等返回true,否则返回false
                - 使用 != 
                - 比较时也会进行自动转换，按转换后的值进行比较

            === 
                全等
                - 用来判断两个值是否全等，它和相等类似，不同的是他不会做自动转换
                    如果类型不同，则直接返回false
            
            !==
                全不等
                -  用来判断两个值是否全不等，和不相等类似，不同的是不自动做类型转换
                    如果类型不同，则直接返回true

        */
        
        // console.log(1 == 1); //返回true
        var a = 10;
        // console.log(a == 4); //false
// 
        // console.log("1" == 1); //true

        // console.log(true == "1"); //true

        // console.log(null == 0);//false

        /*
            undefined衍生自null
                所以这两个值做相等判断时，会返回true
        */

        // console.log(undefined == null); //true

        /*
            NaN不和任何值相等，包括他本身
        */

        // console.log(NaN == NaN); //false

        var b = NaN;
        //判断b的值是否是NaN
        // console.log(b == NaN);//false
        /*
            可以通过isNaN()函数来判断一个值是否是NaN
                如果值为NaN返回true，否则返回false
        */
        // console.log(isNaN(b));

        // console.log("abcd" != "abcd");//返回false
        // console.log("1" != 1); //false

        console.log("123" === 123); //false
        console.log("123" !== 123); //true


    </script>
</head>
<body>
    
</body>
</html>